package org.clockworkmages.games.anno1186.dao;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.clockworkmages.games.anno1186.model.Fetish;
import org.clockworkmages.games.anno1186.model.character.Mutation;
import org.clockworkmages.games.anno1186.model.character.NonPlayerCharacter;
import org.clockworkmages.games.anno1186.model.character.Skill;
import org.clockworkmages.games.anno1186.model.character.Stat;
import org.clockworkmages.games.anno1186.model.effect.Condition;
import org.clockworkmages.games.anno1186.model.effect.Effect;
import org.clockworkmages.games.anno1186.model.effect.Perk;
import org.clockworkmages.games.anno1186.model.item.EquipmentSlot;
import org.clockworkmages.games.anno1186.model.item.Item;
import org.clockworkmages.games.anno1186.model.map.tactical.GameAreaDO;
import org.clockworkmages.games.anno1186.model.map.tactical.SimpleTileObject;
import org.clockworkmages.games.anno1186.model.option.GenericOption;
import org.clockworkmages.games.anno1186.model.situation.GenericSituation;

@XmlRootElement(name = "gameObjects")
@XmlAccessorType(XmlAccessType.NONE)
public class GameObjectsList {

	private List<GenericSituation> situations = new ArrayList<GenericSituation>();
	private List<GenericOption> options = new ArrayList<GenericOption>();
	private List<Stat> stats = new ArrayList<Stat>();
	private List<Skill> skills = new ArrayList<Skill>();
	private List<Perk> perks = new ArrayList<Perk>();
	private List<Effect> baseEffects = new ArrayList<Effect>();
	private List<Condition> conditions = new ArrayList<Condition>();
	private List<EquipmentSlot> equipmentSlots = new ArrayList<EquipmentSlot>();
	private List<Item> items = new ArrayList<Item>();
	private List<Mutation> mutations = new ArrayList<Mutation>();
	private List<ImageIconDescriptor> icons = new ArrayList<ImageIconDescriptor>();
	private String gameStartSituation;
	private List<NonPlayerCharacter> npcs = new ArrayList<NonPlayerCharacter>();
	private List<Fetish> fetishes = new ArrayList<Fetish>();
	private List<SimpleTileObject> tileObjects = new ArrayList<SimpleTileObject>();
	private List<GameAreaDO> gameAreas = new ArrayList<GameAreaDO>();

	@XmlElement(name = "situation")
	public List<GenericSituation> getSituations() {
		return situations;
	}

	public void setSituations(List<GenericSituation> situations) {
		this.situations = situations;
	}

	@XmlElement(name = "option")
	public List<GenericOption> getOptions() {
		return options;
	}

	public void setOptions(List<GenericOption> options) {
		this.options = options;
	}

	@XmlElement(name = "equipmentSlot")
	public List<EquipmentSlot> getEquipmentSlots() {
		return equipmentSlots;
	}

	public void setEquipmentSlots(List<EquipmentSlot> equipmentSlots) {
		this.equipmentSlots = equipmentSlots;
	}

	@XmlElement(name = "perk")
	public List<Perk> getPerks() {
		return perks;
	}

	public void setPerks(List<Perk> perks) {
		this.perks = perks;
	}

	@XmlElement(name = "gameStartSituation")
	public String getGameStartSituation() {
		return gameStartSituation;
	}

	public void setGameStartSituation(String gameStartSituation) {
		this.gameStartSituation = gameStartSituation;
	}

	@XmlElement(name = "stat")
	public List<Stat> getStats() {
		return stats;
	}

	public void setStats(List<Stat> stats) {
		this.stats = stats;
	}

	@XmlElement(name = "skill")
	public List<Skill> getSkills() {
		return skills;
	}

	public void setSkills(List<Skill> skills) {
		this.skills = skills;
	}

	@XmlElement(name = "mutation")
	public List<Mutation> getMutations() {
		return mutations;
	}

	public void setMutations(List<Mutation> mutations) {
		this.mutations = mutations;
	}

	@XmlElement(name = "imageIcon")
	public List<ImageIconDescriptor> getIcons() {
		return icons;
	}

	public void setIcons(List<ImageIconDescriptor> imageIcons) {
		this.icons = imageIcons;
	}

	@XmlElement(name = "condition")
	public List<Condition> getConditions() {
		return conditions;
	}

	public void setConditions(List<Condition> conditions) {
		this.conditions = conditions;
	}

	@XmlElement(name = "item")
	public List<Item> getItems() {
		return items;
	}

	public void setItems(List<Item> items) {
		this.items = items;
	}

	@XmlElement(name = "baseEffect")
	public List<Effect> getBaseEffects() {
		return baseEffects;
	}

	public void setBaseEffects(List<Effect> baseEffects) {
		this.baseEffects = baseEffects;
	}

	@XmlElement(name = "npc")
	public List<NonPlayerCharacter> getNpcs() {
		return npcs;
	}

	public void setNpcs(List<NonPlayerCharacter> npcs) {
		this.npcs = npcs;
	}

	@XmlElement(name = "fetish")
	public List<Fetish> getFetishes() {
		return fetishes;
	}

	public void setFetishes(List<Fetish> fetishes) {
		this.fetishes = fetishes;
	}

	@XmlElement(name = "tileObject")
	public List<SimpleTileObject> getTileObjects() {
		return tileObjects;
	}

	public void setTileObjects(List<SimpleTileObject> tileObjects) {
		this.tileObjects = tileObjects;
	}

	@XmlElement(name = "gameArea")
	public List<GameAreaDO> getGameAreas() {
		return gameAreas;
	}

	public void setGameAreas(List<GameAreaDO> gameAreas) {
		this.gameAreas = gameAreas;
	}

}
